// import com.alibaba.druid.DbType;
// import com.alibaba.druid.sql.ast.SQLName_ptr;
// import com.alibaba.druid.sql.ast.SQLObject;
// import com.alibaba.druid.sql.ast.SQLStatementImpl;
// import com.alibaba.druid.sql.visitor.SQLASTVisitor;

// import java.util.ArrayList;
// import java.util.List;
#pragma once
#include "../SQLStatementImpl.h"
#include "SQLCreateStatement.h"

class SQLCreateRoleStatement : virtual public SQLStatementImpl, virtual public SQLCreateStatement
{
public:
  SQLName_ptr name;
  BOOL_ptr ifNotExists;

  SQLCreateRoleStatement();

  SQLCreateRoleStatement(DbType_ptr dbType);
  SHAREDOBJECT(SQLCreateRoleStatement);

  // @Override
  void accept0(SQLASTVisitor_ptr visitor);

  // @Override
  SQLObject_list_ptr getChildren();

  SQLName_ptr getName();

  void setName(SQLName_ptr name);

  BOOL_ptr isIfNotExists();

  void setIfNotExists(BOOL_ptr ifNotExists);

  // @Override
  SQLDDLStatement::DDLObjectType getDDLObjectType();
};
